Skip to content

chore: dependency hardening and dev/ci requirement centralization - #776

Merged
canbekley merged 4 commits into
mainfrom
chore/dev-requirements-to-pyproject
Nov 4, 2026
Merged

canbekley merged 4 commits into
mainfrom
chore/dev-requirements-to-pyproject

Conversation

@canbekley

@canbekley canbekley commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary

this pr does two things:

  • dev_requirements.txt is moved to the dev group on the pyproject.toml. the centralization improves the visibility of the dev/ci version pinning, compared to what runtime versions are allowed for dbt-clickhouse installations. it also allows for further development in the direction of locking dev version (e.g. on a uv.lock) and using regularly upgraded and reviewed lockfiles for ci/dev dependencies.
  • package runtime dependencies are being hardened: dap-core is now capped to <2.0 to ensure backwards compatibility. all of the dbt-labs adapters already pin to <2.0 because of anticipated issues with the major bump, which has recent release candidates (see issue Updated dbt-core dependency to <2.0 dbt-labs/dbt-adapters#2013). also we are adding dbt-common and agate as explicit dependencies now, because they are actively imported from code. the imports could break if dbt-adapters suddenly decided to not depend on those packages any longer.

Checklist

Delete items not relevant to your PR:

  • A changelog entry was added following Updating the Changelog (user-facing, concise, PR link)
  • For significant changes, documentation in docs was updated with further explanations or tutorials

Note

Medium Risk
Tightening runtime dependency bounds affects every install and upgrade path; the exception import change is small but sits on the connection error-handling path.

Overview
Dev and CI dependencies move from dev_requirements.txt into a [dependency-groups] dev section in pyproject.toml. GitHub Actions (lint, integration steps, cloud tests) and CONTRIBUTING now install with pip install . --group dev (pip 25.1+); the separate setuptools upgrade step in lint is dropped. The docs-drift workflow no longer watches the removed file, and uv.lock is gitignored to support optional dev locking later.

Runtime packaging caps dbt-core at <2.0, and adds dbt-common and agate as direct dependencies (matching other dbt-labs adapters). connections.py imports DbtRuntimeError from dbt_common.exceptions instead of dbt.exceptions, consistent with the explicit dbt-common dependency.

CHANGELOG records the dependency improvement for users upgrading.

Reviewed by Cursor Bugbot for commit cd4ec36. Bugbot is set up for automated code reviews on this repo. Configure here.

this has the benefit that all dependencies are now declared at one place, making it easier to compare configured dev/ci dependencies with allowed runtime versions
Comment thread CONTRIBUTING.md Resolved
@canbekley
canbekley merged commit 5f34458 into main Nov 4, 2026
16 checks passed
Marais added a commit that referenced this pull request Nov 4, 2026
#776 moved the dev tools into [dependency-groups] dev in pyproject.toml
and removed dev_requirements.txt. Replace the dev_requirements.txt
exclusion with allow: dependency-type: production, so Dependabot only
updates [project] dependencies. Extend the major-version ignore to all
dbt-* packages, which now include dbt-common.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants